import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 何华树
 * Date: 2024-05-05
 * Time: 21:56
 */
public class xunhuan_work {
    //编写程序数一下 1到 100 的所有整数中出现多少个数字9
    public static void main1(String[] args) {
        int i = 1;
        int count = 0;
        for (i = 1; i <= 100; i++) {
            if (i % 10 == 9) {
                count++;
            } else if (i / 10 == 9) {
                count++;
            }
            if (i == 99) {
                count++;
            }
        }
        System.out.println(count);
    }

    //给定一个数字，判定一个数字是否是素数
    public static void main2(String[] args) {
        Scanner s = new Scanner(System.in);
        int i = s.nextInt();
        int j = 2;
        int flag = 0;
//        while(j < i-1){
//            flag = 1;
//            if( i % j == 0){
//                flag = 0;
//                System.out.println("不是素数");
//                break;
//            }
//            i++;
//        }
        for (j = 2; j <= i - 1; j++) {
            flag = 1;
            if (i % j == 0) {
                flag = 0;
                System.out.println("不是素数");
                break;
            }
        }
        if (flag == 1) {
            System.out.println("是素数");
        }
    }

    //练习：打印 X 图形
    public static void main3(String[] args) {
        //JAVA的输入写法
        Scanner sr = new Scanner(System.in);
        int input = sr.nextInt();
        int j = 1;
        int i = 1;
        for (i = 1; i <= input; i++) { //控制行
            for (j = 1; j <= input; j++) { //控制列
                if (i == j || i + j == input + 1) {
                    System.out.printf("*");
                } else {
                    System.out.printf(" ");
                }
            }
            System.out.printf("\n");
        }
    }

    public static void main4(String[] args) {
        //求出0～n之间的所有“水仙花数”并输出。
        // (“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数本 身，如；153＝1^3＋5^3＋3^3，则153是一个“水仙花数“。）
        int i = 0;
        int sum1 = 0;
        int sum2 = 0;
        int sum3 = 0;
        for (i = 100; i <= 999; i++) {
            sum1 = i / 10 / 10;
            sum2 = i / 10 % 10;
            sum3 = i % 10;
            if (i == (sum1 * sum1 * sum1) + (sum2 * sum2 * sum2) + (sum3 * sum3 * sum3)) {
                System.out.println(i);
            }
        }
    }

    public static void main5(String[] args) {
        //计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值    。
        int i = 1;
        double sum = 0;
        int flg = 1;
        for (i = 1; i <= 100; i++) {
            sum += 1.0 / (i * flg);
            flg = -flg;
        }
        System.out.println(sum);
    }

    public static void main6(String[] args) {
        //求2个整数的最大公约数
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        int b = s.nextInt();
        while (a % b != 0) {
            int temp = a % b;
            a = b;
            b = temp;
        }
        System.out.println(b);
    }

    public static void main7(String[] args) {
        //一个数的二进制中 1 的个数
        //方法一：(类似于十进制转换成二进制的方式)
//        Scanner s = new Scanner(System.in);
//        int input = s.nextInt();
//        int count = 0;
//        while( input != 0){
//            if(input % 2 == 1){
//                count++;
//            }
//            input /= 2;
//        }
//        System.out.println(count);

        //方法二：(使用循环遍历 32 位二进制序列)
//        Scanner s = new Scanner(System.in);
//        int input = s.nextInt();
//        int i = 0;
//        int count = 0;
//        for (i = 0; i < 32; i++) {
//           if (((input >> i) & 1 )== 1){//将 input 的每一位向右移，用 & 1 去遍历每一位
//                count++;
//            }
//        }
//        System.out.println(count);}
//          注意：if里面的判断条件不可以写成 (1<<i)&input --- 因为这个式子是算出来一个结果
//          ((input >> i) & 1如15:1 1 1 1            如果是 (1<<3)& 15   如：1 1 1 1
        //                        &                                          &
        //                        0 0 0 1                                  1 0 0 0
        //                           这样的结果才是 1                             这样子的结果是 8 不是 1
        //                               所以说：不可以把 1 的位数向 左移 ，因为这样算出来的结果不是 1
        //方法三：利用n= n&(n-1)
        Scanner s = new Scanner(System.in);
        int input = s.nextInt();
        int count = 0;
        while(input != 0){
            count++;
            input = input & (input - 1);
        }
        System.out.println(count);
    }

    public static void main8(String[] args) {
            int a = 10;
            System.out.println(a);
    }
}
